//
//  MirrorMaterial.hpp
//  RayTracer
//
//  Created by 俞云康 on 3/25/16.
//  Copyright © 2016 yushroom. All rights reserved.
//

#ifndef MirrorMaterial_hpp
#define MirrorMaterial_hpp

#include "Material.hpp"


class MirrorMaterial : public Material {
private:
    std::shared_ptr<Texture> Kr;
public:
    MirrorMaterial(std::shared_ptr<Texture> Kr) : Kr(Kr) {}
    
    //    virtual Color diffuse(const HitInfo& hit) const override {
    //        return Kr->sample(hit.texcoord.x, hit.texcoord.y);
    //    }
    
    static shared_ptr<Material> create(const Params& params);
    
    //virtual std::shared_ptr<BxDF> get_brdf(const HitInfo& hit) const override;
    virtual shared_ptr<BSDF> getBSDF(const HitInfo& hit) const override;
};

#endif /* MirrorMaterial_hpp */
